package com.sample.api;

import java.util.List;

import com.sample.mapping.AbstractMapping;
import com.sample.mapping.SingleUpdateMapping;

public interface Dao {

	public <T> void get(String columnFamilyName, T id,AbstractMapping<T> mapping);
	
	public <T> void getWithRange(String columnFamilyName, T id,AbstractMapping<T> mapping, String startColumn, String endColumn);
	
	public <T> void getWithRange(String columnFamilyName, T id,AbstractMapping<T> mapping, String startColumn, String endColumn, int noOfRows);
	
	public <T> void getAllRow(String columnFamilyName,
			List<AbstractMapping<T>> mappings, int limit,Class<?> mappingClass);
	
	public <K> void insert(String columnFamilyName,
			AbstractMapping<K> mapping);
	
	public <K> void insertOrUpdate(String columnFamilyName,
			SingleUpdateMapping<K> mapping);
	
}
